home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_03_06
/
3n06043a
< prev
next >
Wrap
Text File
|
1991-09-24
|
6KB
|
234 lines
/* Listing 3 */
/*****************************************************
File Name: C_W_DEMO.C
Expanded Name: Center Window Demo
Description: Center Window Demo Program
Program List: C_W_DEMO.C CNTR_WND.C
Global Function List: CenterWindow
Static Function List: CenterWindowDialog
Local Macro List:
Global Data:
Static Data: _hInstance _hWnd
Portability: MS Windows, Any memory model,
Any windows compatable C Compiler
******************************************************/
/* MS Windows */
#include <windows.h>
/* Types and Prototypes */
#include <cntr_wnd.h>
/* Own */
#include <c_w_demo.h>
/* Prototypes of functions called only by windows. */
LONG FAR PASCAL CenterWindowDemoProc(
HWND hWnd, WORD iMessage, WORD wParam,
LONG lParam );
BOOL FAR PASCAL CenterWindowDialogProc(
HWND hDlg, WORD iMessage, WORD wParam,
LONG lParam );
/* static data */
static HWND _hWnd;
static HANDLE _hInstance;
/*****************************************************
Name: WinMain
Description: Program entry point.
*****************************************************/
int PASCAL WinMain( HANDLE hInstance,
HANDLE hPrevInstance, LPSTR lpszCmdParam,
int nCmdShow )
{
MSG Message;
WNDCLASS WndClass;
char *CenterWindowDemoName = "CenterWindowDemo";
_hInstance = hInstance;
if ( !hPrevInstance )
{
WndClass.style = CS_HREDRAW | CS_VREDRAW;
WndClass.lpfnWndProc = CenterWindowDemoProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = _hInstance;
WndClass.hIcon = LoadIcon( _hInstance,
CenterWindowDemoName );
WndClass.hCursor =
LoadCursor( NULL, IDC_ARROW );
WndClass.hbrBackground = COLOR_WINDOW + 1;
WndClass.lpszMenuName =
CenterWindowDemoName;
WndClass.lpszClassName =
CenterWindowDemoName;
if ( RegisterClass( &WndClass ) == FALSE )
{
MessageBeep( 0 );
return ( FALSE );
}
}
/* Create the window with default pos. and size */
_hWnd = CreateWindow( CenterWindowDemoName,
"Center Window Demo",
WS_OVERLAPPEDWINDOW | WS_VISIBLE |
WS_VSCROLL | WS_HSCROLL,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, _hInstance, NULL );
if ( _hWnd == NULL )
{
/* If window could not be created, return. */
MessageBeep( 0 );
return ( FALSE );
}
ShowWindow( _hWnd, nCmdShow );
UpdateWindow( _hWnd );
while ( GetMessage( &Message, NULL, NULL, NULL ) )
{
TranslateMessage( &Message );
DispatchMessage( &Message );
}
return ( (int)Message.wParam );
} /* function WinMain */
/*****************************************************
Name: CenterWindowDemoProc
Description: Window Procedure for center window demo
program. This is called by Windows only.
*****************************************************/
long FAR PASCAL CenterWindowDemoProc( HWND hWnd,
WORD iMessage, WORD wParam, LONG lParam )
{
switch ( iMessage )
{
case WM_CREATE:
{
CenterWindow( NULL, hWnd, FALSE );
break;
}
case WM_COMMAND:
{
switch ( wParam )
{
case IDM_CENTER_MAIN:
{
CenterWindow( NULL, hWnd,
TRUE );
break;
}
case IDM_DIALOG:
{
FARPROC lpfCenterWindowDialog;
lpfCenterWindowDialog =
MakeProcInstance(
CenterWindowDialogProc,
_hInstance );
DialogBox( _hInstance,
"CenterWindowDialog",
hWnd,
lpfCenterWindowDialog );
FreeProcInstance(
lpfCenterWindowDialog );
break;
}
case IDM_EXIT:
{
SendMessage( hWnd,
WM_CLOSE, 0, 0L );
break;
}
default:
{
break;
}
}
break;
}
case WM_DESTROY:
{
PostQuitMessage( 0 );
break;
}
default:
{
return ( DefWindowProc( hWnd, iMessage,
wParam, lParam ) );
}
} /* switch iMessage */
return ( FALSE );
} /* function CenterWindowDemoProc */
/*****************************************************
Name: CenterWindow
Description: Dialog Procedure for center window demo.
Processes commands to center the dialog
box within the parent window or within
the desktop. This function is called
by Windows only.
*****************************************************/
BOOL FAR PASCAL CenterWindowDialogProc( HWND hDlg,
WORD Message, WORD wParam, LONG lParam )
{
switch ( Message )
{
case WM_INITDIALOG:
{
CenterWindow( _hWnd, hDlg, FALSE );
return ( TRUE );
}
case WM_COMMAND:
{
switch ( wParam )
{
default:
{
break;
}
case IDCANCEL:
case IDOK:
{
EndDialog( hDlg, FALSE );
return ( TRUE );
}
case IDD_PARENT:
{
CenterWindow( _hWnd, hDlg,
TRUE );
break;
}
case IDD_DESKTOP:
{
CenterWindow( NULL, hDlg,
TRUE );
break;
}
} /* switch wParam */
break;
}
default:
{
break;
}
} /* switch message */
return ( FALSE );
} /* function CenterWindowDialogProc */